#include <REGX52.H>

# include <intrins.h>//头文件

# define uchar unsigned char
# define uint unsigned int

sbit SCK = P1^0;//位定义时钟
sbit CS = P1^1;//位定义片选(使能)  此项目可以不使用
sbit SDI = P1^2;//位定义Input
sbit SDO = P1^3;//位定义Output

void SPI_Delay_us(unsigned int xus)
{
	while(xus--)
	{
		_nop_();
		_nop_();
		_nop_();
		_nop_();
	}
}
int SPI_Receve()
{
	int i=0;
	int mydata=0;
	for(i=0;i<8;i++)
	{
		mydata>>=1;
		while(SCK==1);
		while(SCK==0);
		mydata|=SDI;
	}
		return mydata;
}
void SPI_Send(char dat1) //上升沿发送数据
{
		uchar i;
	for (i=0; i<8; ++i)//8bit，一位一位写
	{
		SCK = 0;
		if (dat1 & 0x80)//判断当前最高位为1还是0
		{
			SDO = 1;		
		}
		else
		{
			SDO = 0;
		}
		SCK = 1;//上升沿发送数据
		dat1 <<= 1;
		SPI_Delay_us(5);		
	}
}
